### Choices ###{{{
data_change_choices <- function(data, set){
  # data to change choice
  # set <- list(c(choice, type), c(choice, type),...)
  # The third argument can be used for rename
  #
  # Make sure choices you do not want to use have >=0

  number <- length(set)
  for(i in 1:number){
    if(length(set[[i]]) == 0){
      # Plceholder
      next
    }

    if(set[[i]][1] == "Party_LDP"){
      if("Q13.2" %in% colnames(data) & "Q13.3" %in% colnames(data)){
        data$Party_LDP <- apply(data[, c("Q13.2", "Q13.3")], 1,
                                function(x){
                                  change_choices(x, "party_LDP_collapse")  
                                })

        data %>% filter(Party_LDP >= 0) -> data

        if(is.na(set[[i]][2]))
          data %>% select(-Q13.2, -Q13.3) -> data
        colname <- "Party_LDP"
      }else{
        stop("Include both Q13.2 and Q13.3 (Party_LDP)")  
      }
    
    }else if(set[[i]][1] == "Party_Indp"){
      if("Q13.2" %in% colnames(data) & "Q13.3" %in% colnames(data)){
        data$Party_Indp <- apply(data[, c("Q13.2", "Q13.3")], 1,
                                function(x){
                                  change_choices(x, "party_indp_collapse")  
                                })

        data %>% filter(Party_Indp >= 0) -> data
        
        if(is.na(set[[i]][2]))
          data %>% select(-Q13.2, -Q13.3) -> data
        colname <- "Party_Indp"
      }else{
        stop("Include both Q13.2 and Q13.3 (Party_Indp)")  
      }
    
    }else if(set[[i]][1] == "Party_Left"){
      if("Q13.2" %in% colnames(data) & "Q13.3" %in% colnames(data)){
        data$Party_Left <- apply(data[, c("Q13.2", "Q13.3")], 1,
                                function(x){
                                  change_choices(x, "party_left_collapse")  
                                })

        data %>% filter(Party_Left >= 0) -> data
        
        if(is.na(set[[i]][2]))
          data %>% select(-Q13.2, -Q13.3) -> data
        colname <- "Party_Left"
      }else{
        stop("Include both Q13.2 and Q13.3 (Party_Left)")
      }
    
    }else if(set[[i]][1] == "Party_Others"){
      if("Q13.2" %in% colnames(data) & "Q13.3" %in% colnames(data)){
        data$Party_Others <- apply(data[, c("Q13.2", "Q13.3")], 1,
                                function(x){
                                  change_choices(x, "party_others_collapse")  
                                })

        data %>% filter(Party_Others >= 0) %>% select(-Q13.2, -Q13.3) -> data
        colname <- "Party_Others"
      }else{
        stop("Include both Q13.2 and Q13.3")  
      }

    }else if(set[[i]][1] == "log_income"|set[[i]][1] == "Q15.8"){
      if("Q15.8" %in% colnames(data)){
        data$log_income <- apply(data[, c("Q15.8")], 1,
                                function(x){
                                  # change_choices(x, "log_income")  
                                      if(is.na(x))
                                        return(-1)
                                      if(x > 10000){
                                        # too large
                                        return(-1)
                                      }else{
                                        return(log(x + 1))  
                                      }
                                })

        data %>% filter(log_income >= 0) %>% select(-Q15.8) -> data
        colname <- "log_income"
      }else{
        stop("Include Q15.8")  
      }

    }else if(set[[i]][1] == "Q15.5"){
      if("Q15.5" %in% colnames(data)){
        data$Age <- apply(data[, c("Q15.5")], 1,
                                function(x){
                                  return(2017 - x)
                                  # change_choices(x, "age")  
                                })

        data %>% filter(Age >= 0) %>% select(-Q15.5) -> data
        colname <- "Age"
      }else{
        stop("Include Q15.5")  
      }

    }else if(set[[i]][1] == "binarize"){
      for(j in 2:3){
        colname <- set[[i]][[j]][1]
        type <- ifelse(is.na(set[[i]][[j]][2]), set[[i]][[j]][1], set[[i]][[j]][2])

        data[ , set[[i]][[j]][1]] <- apply(data[, set[[i]][[j]][1]], 1,
                                       function(x){
                                          change_choices(if_else(!is.na(x), x, "NA"), 
                                                         type) 
                                       })

        if(!is.na(set[[i]][[j]][3])){
          newcolname <- set[[i]][[j]][3]
          data <- data %>% rename(!!newcolname := !!rlang::sym(colname))
        }
      }

      data %>% 
        mutate(depend_var = if_else(Group==0, DV1, DV2)) %>%
        mutate(Treatment = Group) %>%
        mutate(depend_var = case_when(
                                        depend_var == 0 ~ -1,
                                        depend_var == 3 ~ -1,
                                        depend_var == 1 ~ 1,
                                        depend_var == 2 ~ 1,
                                        depend_var == 4 ~ 0,
                                        depend_var == 5 ~ 0
                                       )
        ) %>%
        filter(depend_var >= 0) -> data

      newcolname <- set[[i]][[4]]
      data <- data %>% rename(!!newcolname := depend_var) 
      next  # no need to rename column below

    }else if(set[[i]][1]=="Q3_collapse"){
      # It is 1 if a respondent answers 2 or 3 correctly out of three questions

      if(sum(c("Q3.2", "Q3.3", "Q3.4") %in% colnames(data) ) == 3){

        data$Q3.2 <- apply(data[, "Q3.2"], 1,
                           function(x){
                              change_choices(if_else(!is.na(x), x, "NA"),
                                             "Q3.2") 
                           })

        data$Q3.3 <- apply(data[, "Q3.3"], 1,
                           function(x){
                              change_choices(if_else(!is.na(x), x, "NA"),
                                             "Q3.3") 
                           })

        data$Q3.4 <- apply(data[, "Q3.4"], 1,
                           function(x){
                              change_choices(if_else(!is.na(x), x, "NA"),
                                             "Q3.4") 
                           })

        data %>%
          rowwise() %>%
          mutate(Q3_CorrectNum = sum(c(Q3.2=="Correct", Q3.3=="Correct", Q3.4=="Correct"))) %>%
          mutate(Q3 = case_when(
                                  Q3_CorrectNum == 3 ~ 1,   
                                  Q3_CorrectNum == 2 ~ 1,   
                                  TRUE ~ 0  
                                )
                ) -> data

        colname <- "Q3"

      }else{
        stop("Include Q3.2, Q3.3, and Q3.4")  
      }
    
    
    }else{
      # Single argument
      colname <- set[[i]][1]
      type <- ifelse(is.na(set[[i]][2]), set[[i]][1], set[[i]][2])

      data[ , set[[i]][1]] <- apply(data[, set[[i]][1]], 1,
                                     function(x){
                                        change_choices(if_else(!is.na(x), x, "NA"), 
                                                       type) 
                                     })

      data %>% filter(!!rlang::sym(colname) >= 0) -> data
        # Remove NA values

    }

    if(!is.na(set[[i]][3])){
      newcolname <- set[[i]][3]
      data <- data %>% rename(!!newcolname := !!rlang::sym(colname))
    }
  }

  message(paste0("Used number of data: ", as.character(nrow(data))))

  return(data)
}



choices_near <- c("(A)に\n近い", "やや(A)に\n近い", "どちらとも\nいえない", 
                  "やや(B)に\n近い", "(B)に\n近い")

choices_near_eng <- c("(A)", "Lean (A)", "Neutral", 
                  "Lean (B)", "(B)")

choices_good_eng <- c("Good", "Lean Good", "Neutral", 
                  "Lean Bad", "Bad")

choices_near_eng_collapsed <- c("(A)", "Neutral", "(B)")



change_choices <- function(choice, type){ #{{{

  if(type=="Good"){
    if(choice=="良い"){
      return(1)
    }else if(choice=="やや良い"){
      return(2)
    }else if(choice=="どちらともいえない"|choice=="どちらとも言えない"){
      return(3)
    }else if(choice=="やや悪い"){
      return(4)
    }else if(choice=="悪い"){
      return(5)
    }else if(choice=="わからない・答えたくない"|choice=="NA"){
      return(0)
    }else{
      print(choice)
      # Intentional no return
    }
  }


  if(type=="Good_collapse"){
    if(choice=="良い"){
      return(1)
    }else if(choice=="やや良い"){
      return(1)
    }else if(choice=="どちらともいえない"|choice=="どちらとも言えない"){
      return(-1)
    }else if(choice=="やや悪い"){
      return(0)
    }else if(choice=="悪い"){
      return(0)
    }else if(choice=="わからない・答えたくない"|choice=="NA"){
      return(-1)
    }else{
      print(choice)
      # Intentional no return
    }
  }


  if(type=="Near"){
    if(choice=="(A)に近い"){
      return(1)
    }else if(choice=="やや(A)に近い"){
      return(2)
    }else if(choice=="どちらともいえない"|choice=="どちらとも言えない"){
      return(3)
    }else if(choice=="やや(B)に近い"){
      return(4)
    }else if(choice=="(B)に近い"){
      return(5)
    }else if(choice=="わからない・答えたくない"|choice=="NA"){
      return(0)
    }else{
      print(choice)
      # Intentional no return
    }
  }


  if(type=="Near_Reversed"){
    if(choice=="(A)に近い"){
      return(5)
    }else if(choice=="やや(A)に近い"){
      return(4)
    }else if(choice=="どちらともいえない"|choice=="どちらとも言えない"){
      return(3)
    }else if(choice=="やや(B)に近い"){
      return(2)
    }else if(choice=="(B)に近い"){
      return(1)
    }else if(choice=="わからない・答えたくない"|choice=="NA"){
      return(0)
    }else{
      print(choice)
      # Intentional no return
    }
  }


  if(type=="Need"){
    if(choice=="とても必要"){
      return(1)
    }else if(choice=="ある程度必要"){
      return(2)
    }else if(choice=="あまり必要ない"){
      return(3)
    }else if(choice=="全く必要ない"){
      return(4)
    }else if(choice=="わからない・答えたくない"|choice=="NA"){
      return(0)
    }else{
      print(choice)
      # Intentional no return
    }
  }

  if(type=="Need_collapse"){
    if(choice=="とても必要"|choice=="ある程度必要"){
      return(1)
    }else if(choice=="あまり必要ない"|choice=="全く必要ない"){
      return(0)
    }else if(choice=="わからない・答えたくない"|choice=="NA"){
      return(-1)
    }else{
      print(choice)
      # Intentional no return
    }
  }


  if(type=="Interest_collapse"){
    if(choice=="とても関心がある"|choice=="ある程度関心がある"){
      return(1)
    }else if(choice=="あまり関心がない"|choice=="全く関心がない"){
      return(0)
    }else if(choice=="わからない・答えたくない"|choice=="NA"){
      return(-1)
    }else{
      print(choice)
      # Intentional no return
    }
  }


  if(type=="Near_collapse"){
    if(choice=="(A)に近い"){
      return(1)
    }else if(choice=="やや(A)に近い"){
      return(1)
    }else if(choice=="どちらともいえない"|choice=="どちらとも言えない"){
      return(2)
    }else if(choice=="やや(B)に近い"){
      return(3)
    }else if(choice=="(B)に近い"){
      return(3)
    }else if(choice=="わからない・答えたくない"|choice=="NA"){
      return(0)
    }else{
      print(choice)
      # Intentional no return
    }
  }


  if(type=="Near_collapse_new"){
    if(choice=="(A)に近い"){
      return(1)
    }else if(choice=="やや(A)に近い"){
      return(1)
    }else if(choice=="どちらともいえない"|choice=="どちらとも言えない"){
      return(-1)
    }else if(choice=="やや(B)に近い"){
      return(0)
    }else if(choice=="(B)に近い"){
      return(0)
    }else if(choice=="わからない・答えたくない"|choice=="NA"){
      return(-1)
    }else{
      print(choice)
      # Intentional no return
    }
  }


  if(type=="Near_collapse_new_Reversed"){
    if(choice=="(A)に近い"){
      return(0)
    }else if(choice=="やや(A)に近い"){
      return(0)
    }else if(choice=="どちらともいえない"|choice=="どちらとも言えない"){
      return(-1)
    }else if(choice=="やや(B)に近い"){
      return(1)
    }else if(choice=="(B)に近い"){
      return(1)
    }else if(choice=="わからない・答えたくない"|choice=="NA"){
      return(-1)
    }else{
      print(choice)
      # Intentional no return
    }
  }


  if(type=="Group"){
    if(choice=="A"){
      return(1) # Control
    }else if(choice=="B"){
      return(2) # Treatment
    }else{
      
    }
  }


  if(type=="Group_new"){
    if(choice=="A"){
      return(0) # Control
    }else if(choice=="B"){
      return(1) # Treatment
    }else{
      
    }
  }


  if(type=="Group_text"){
    if(choice=="A"){
      return("Control")
    }else if(choice=="B"){
      return("Treatment")
    }else{
      
    }
  }

  if(type=="Q3.2"){
    if(choice=="国民主権,基本的人権の尊重,平和主義"){
      return("Correct")
    }else if(choice=="わからない・答えたくない"){
      return("DK")
    }else{
      return("Incorrect")
    }
  }

  if(type=="Q3.3"){
    if(choice=="納税,勤労,子供に教育を受けさせる"){
      return("Correct")
    }else if(choice=="わからない・答えたくない"){
      return("DK")
    }else{
      return("Incorrect")
    }
  }

  if(type=="Q3.4"){
    if(choice=="衆議院と参議院の二院制,最高裁判所裁判官の任命権"){
      return("Correct")
    }else if(choice=="わからない・答えたくない"){
      return("DK")
    }else{
      return("Incorrect")
    }
  }

  if(type=="KnowledgeCorrectNum"){
    num <- 0
    if(choice[1]=="Correct")
      num <- num + 1
    if(choice[2]=="Correct")
      num <- num + 1
    if(choice[3]=="Correct")
      num <- num + 1
    if(num >= 2){
      return(1) # If correctly answer two or more questions
    }else{
      return(0)
    }
  }

  if(type=="KnowledgeCorrectNum_real"){
    num <- 0
    if(choice[1]=="Correct")
      num <- num + 1
    if(choice[2]=="Correct")
      num <- num + 1
    if(choice[3]=="Correct")
      num <- num + 1
  
    return(num + 1) # to make it ordered 1, 2, 3, 4
  }

  if(type=="Q13.4"){
    if(choice=="否定的"){
      return(1)
    }else if(choice=="やや否定的"){
      return(2)
    }else if(choice=="どちらでもない"){
      return(3)
    }else if(choice=="やや好意的"){
      return(4)
    }else if(choice=="好意的"){
      return(5)
    }else if(choice=="わからない・答えたくない"){
      return(0)
    }else{
      print(choice)
      # Intentional No return  
    }
  }

  if(type=="Q13.4_collapse"){
    if(choice=="否定的"|choice=="やや否定的"|choice=="どちらでもない"){
      return(0)
    }else if(choice=="好意的"|choice=="やや好意的"){
      return(1)
    }else if(choice=="わからない・答えたくない"){
      return(-1)
    }else{
      print(choice)
      # Intentional No return  
    }
  }

  if(type=="Q15.2"){
    if(choice=="男性"){
      return(0)
    }else if(choice=="女性"){
      return(1)
    }else{
      return(2)
    }
  }


  if(type=="Q15.2_collapse"){
    if(choice=="男性"){
      return(0)
    }else if(choice=="女性"){
      return(1)
    }else{
      return(-1)
    }
  }


  if(type=="Q15.3"){
    if(choice=="未婚"){
      return(1)
    }else if(choice=="既婚"){
      return(2)
    }else if(choice=="離別・死別"){
      return(3)
    }else{
      print(choice)
      # Intentional No return  
    }
  }

  if(type=="Q15.3_collapse"){
    if(choice=="未婚"){
      return(0)
    }else if(choice=="既婚"){
      return(1)
    }else if(choice=="離別・死別"){
      return(0)
    }else{
      print(choice)
      # Intentional No return  
    }
  }

  if(type=="Q15.4"){
    if(choice=="未成年の子供がいる"){
      return(1)
    }else if(choice=="成人した子供がいる"){
      return(2)
    }else if(choice=="成人した子供がいる,未成年の子供がいる"){
      return(3)
    }else if(choice=="いない"){
      return(4)
    }else{
      # Intentional No return  
    }
  }

  if(type=="Q15.4_collapse"){
    if(choice=="未成年の子供がいる"){
      return(1)
    }else if(choice=="成人した子供がいる"){
      return(1)
    }else if(choice=="成人した子供がいる,未成年の子供がいる"){
      return(1)
    }else if(choice=="いない"){
      return(0)
    }else{
      # Intentional No return  
    }
  }

  if(type=="Q15.5_collapse"){
    if(choice<=1974){
      return(0)
    }else if(choice>=1975){
      return(1)
    }else{
      # Intentional No return  
    }
  }

  if(type=="Q15.4_text"){
    if(choice=="未成年の子供がいる"){
      return("未成年")
    }else if(choice=="成人した子供がいる"){
      return("成人")
    }else if(choice=="成人した子供がいる,未成年の子供がいる"){
      return("両方")
    }else if(choice=="いない"){
      return("いない")
    }else{
      # Intentional No return  
    }
  }

  if(type=="Q15.7"){
    if(choice=="中学校"){
      return(1)
    }
    if(choice=="高校"){
      return(2)
    }
    if(choice=="専門学校"){
      return(3)
    }
    if(choice=="高専"){
      return(4)
    }
    if(choice=="短期大学"){
      return(5)
    }
    if(choice=="大学"){
      return(6)
    }
    if(choice=="大学院"){
      return(7)
    }
  }

  if(type=="Q15.7_collapse"){
    if(choice=="中学校"){
      return(0)
    }
    if(choice=="高校"){
      return(0)
    }
    if(choice=="専門学校"){
      return(1)
    }
    if(choice=="高専"){
      return(1)
    }
    if(choice=="短期大学"){
      return(1)
    }
    if(choice=="大学"){
      return(1)
    }
    if(choice=="大学院"){
      return(1)
    }
  }


  if(type=="Q15.7_collapse_new"){
    if(choice=="中学校"){
      return(0)
    }
    if(choice=="高校"){
      return(0)
    }
    if(choice=="専門学校"){
      return(0)
    }
    if(choice=="高専"){
      return(0)
    }
    if(choice=="短期大学"){
      return(1)
    }
    if(choice=="大学"){
      return(1)
    }
    if(choice=="大学院"){
      return(1)
    }
  }


  if(type=="Q13.2" | type=="Q13.3"){
    if(choice=="自由民主党"){
      return(1)
    }else if(choice=="民進党"){
      return(2)
    }else if(choice=="公明党"){
      return(3)
    }else if(choice=="日本維新の会"){
      return(4)
    }else if(choice=="社会民主党"){
      return(5)
    }else if(choice=="自由党"){
      return(6)
    }else if(choice=="日本共産党"){
      return(7)
    }else if(choice=="その他"){
      return(8)
    }else if(choice=="どの政党も支持しない"){
      return(9)
    }else if(choice=="わからない・答えたくない"){
      return(10)
    }else{
      # Intentional No return
    }
  }

  if(type=="Q13.2_Eng" | type=="Q13.3_Eng"){
    if(choice=="自由民主党"){
      return("LDP")
    }else if(choice=="民進党"){
      return("DP")
    }else if(choice=="公明党"){
      return("Komei")
    }else if(choice=="日本維新の会"){
      return("Ishin")
    }else if(choice=="社会民主党"){
      return("SDP")
    }else if(choice=="自由党"){
      return("Liberal")
    }else if(choice=="日本共産党"){
      return("JCP")
    }else if(choice=="その他"){
      return("Others")
    }else if(choice=="どの政党も支持しない"){
      return("Independent")
    }else if(choice=="わからない・答えたくない"){
      return("DK")
    }else if(is.na(choice)){
      return("NA")  
    }else{
      # Intentional No return
    }
  }


  if(type=="party_coarse"){
    if(choice[1]=="自由民主党"){
      return(1)
    }else if(choice[1]=="民進党"){
      return(2)
    }else if(choice[1]=="公明党"){
      return(3)
    }else if(choice[1]=="日本維新の会"){
      return(4)
    }else if(choice[1]=="社会民主党"){
      return(5)
    }else if(choice[1]=="自由党"){
      return(6)
    }else if(choice[1]=="日本共産党"){
      return(7)
    }else if(choice[1]=="その他"){
      return(8)
    }else if(choice[1]=="どの政党も支持しない"){
        if(choice[2]=="自由民主党"){
          return(1)
        }else if(choice[2]=="民進党"){
          return(2)
        }else if(choice[2]=="公明党"){
          return(3)
        }else if(choice[2]=="日本維新の会"){
          return(4)
        }else if(choice[2]=="社会民主党"){
          return(5)
        }else if(choice[2]=="自由党"){
          return(6)
        }else if(choice[2]=="日本共産党"){
          return(7)
        }else if(choice[2]=="その他"){
          return(8)
        }else if(choice[2]=="どの政党も支持しない"){
          return(9)
        }else if(choice[2]=="わからない・答えたくない"){
          return(10)
        }else{
          # Intentional No return
        }
    }else if(choice[1]=="わからない・答えたくない"){
      return(10)
    }else{
      # Intentional No return
    }
  }

  if(type=="party_LDP_Independent"){
    # Party ID number -> LDP and Independent
    if(choice==1){
      return(0) # 自民党支持者
    }else if(choice==9){
      return(1) # 無党派層
    }else{
      return(-1)
    }
  }

  if(type=="LDP_NonLDP"){
    # Party ID number -> LDP and Non-LDP 
    if(choice==1){
      return(0) # 自民党支持者
    }else if(choice==10){
      return(-1) # わからない・答えたくない
    }else{ # 自民党支持者以外
      return(1)
    }
  }

  if(type=="party_ruling_nonruling_indp"){
    # Jimin / Komei = 0
    # Non Jikou = 1
    # Independent = 2
    if(choice=="自由民主党"){
      return(0)
    }else if(choice=="民進党"){
      return(1)
    }else if(choice=="公明党"){
      return(0)
    }else if(choice=="日本維新の会"){
      return(1)
    }else if(choice=="社会民主党"){
      return(1)
    }else if(choice=="自由党"){
      return(1)
    }else if(choice=="日本共産党"){
      return(1)
    }else if(choice=="その他"){
      return(1)
    }else if(choice=="どの政党も支持しない"){
      return(2)
    }else if(choice=="わからない・答えたくない"){
      return(-1)
    }else{
      # Intentional No return
    }
  }


  if(type=="party_LDP_collapse"){
    if(choice[1]=="自由民主党"){
      return(1)
    }else if(choice[1]=="民進党"){
      return(0)
    }else if(choice[1]=="公明党"){
      return(0)
    }else if(choice[1]=="日本維新の会"){
      return(0)
    }else if(choice[1]=="社会民主党"){
      return(0)
    }else if(choice[1]=="自由党"){
      return(0)
    }else if(choice[1]=="日本共産党"){
      return(0)
    }else if(choice[1]=="その他"){
      return(0)
    }else if(choice[1]=="どの政党も支持しない"){
        if(choice[2]=="自由民主党"){
          return(1)
        }else if(choice[2]=="民進党"){
          return(0)
        }else if(choice[2]=="公明党"){
          return(0)
        }else if(choice[2]=="日本維新の会"){
          return(0)
        }else if(choice[2]=="社会民主党"){
          return(0)
        }else if(choice[2]=="自由党"){
          return(0)
        }else if(choice[2]=="日本共産党"){
          return(0)
        }else if(choice[2]=="その他"){
          return(0)
        }else if(choice[2]=="どの政党も支持しない"){
          return(0)
        }else if(choice[2]=="わからない・答えたくない"){
          return(0)
        }else{
          # Intentional No return
        }
    }else if(choice[1]=="わからない・答えたくない"){
      return(0)
    }else{
      # Intentional No return
    }
  }


  if(type=="party_indp_collapse"){
    if(choice[1]=="自由民主党"){
      return(0)
    }else if(choice[1]=="民進党"){
      return(0)
    }else if(choice[1]=="公明党"){
      return(0)
    }else if(choice[1]=="日本維新の会"){
      return(0)
    }else if(choice[1]=="社会民主党"){
      return(0)
    }else if(choice[1]=="自由党"){
      return(0)
    }else if(choice[1]=="日本共産党"){
      return(0)
    }else if(choice[1]=="その他"){
      return(0)
    }else if(choice[1]=="どの政党も支持しない"){
        if(choice[2]=="自由民主党"){
          return(0)
        }else if(choice[2]=="民進党"){
          return(0)
        }else if(choice[2]=="公明党"){
          return(0)
        }else if(choice[2]=="日本維新の会"){
          return(0)
        }else if(choice[2]=="社会民主党"){
          return(0)
        }else if(choice[2]=="自由党"){
          return(0)
        }else if(choice[2]=="日本共産党"){
          return(0)
        }else if(choice[2]=="その他"){
          return(0)
        }else if(choice[2]=="どの政党も支持しない"){
          return(1)
        }else if(choice[2]=="わからない・答えたくない"){
          return(0)
        }else{
          # Intentional No return
        }
    }else if(choice[1]=="わからない・答えたくない"){
      return(0)
    }else{
      # Intentional No return
    }
  }


  if(type=="party_left_collapse"){
    if(choice[1]=="自由民主党"){
      return(0)
    }else if(choice[1]=="民進党"){
      return(1)
    }else if(choice[1]=="公明党"){
      return(0)
    }else if(choice[1]=="日本維新の会"){
      return(0)
    }else if(choice[1]=="社会民主党"){
      return(1)
    }else if(choice[1]=="自由党"){
      return(0)
    }else if(choice[1]=="日本共産党"){
      return(1)
    }else if(choice[1]=="その他"){
      return(0)
    }else if(choice[1]=="どの政党も支持しない"){
        if(choice[2]=="自由民主党"){
          return(0)
        }else if(choice[2]=="民進党"){
          return(1)
        }else if(choice[2]=="公明党"){
          return(0)
        }else if(choice[2]=="日本維新の会"){
          return(0)
        }else if(choice[2]=="社会民主党"){
          return(1)
        }else if(choice[2]=="自由党"){
          return(0)
        }else if(choice[2]=="日本共産党"){
          return(1)
        }else if(choice[2]=="その他"){
          return(0)
        }else if(choice[2]=="どの政党も支持しない"){
          return(0)
        }else if(choice[2]=="わからない・答えたくない"){
          return(0)
        }else{
          # Intentional No return
        }
    }else if(choice[1]=="わからない・答えたくない"){
      return(0)
    }else{
      # Intentional No return
    }
  }


  if(type=="party_others_collapse"){
    if(choice[1]=="自由民主党"){
      return(0)
    }else if(choice[1]=="民進党"){
      return(1)
    }else if(choice[1]=="公明党"){
      return(1)
    }else if(choice[1]=="日本維新の会"){
      return(1)
    }else if(choice[1]=="社会民主党"){
      return(1)
    }else if(choice[1]=="自由党"){
      return(1)
    }else if(choice[1]=="日本共産党"){
      return(1)
    }else if(choice[1]=="その他"){
      return(1)
    }else if(choice[1]=="どの政党も支持しない"){
        if(choice[2]=="自由民主党"){
          return(0)
        }else if(choice[2]=="民進党"){
          return(1)
        }else if(choice[2]=="公明党"){
          return(1)
        }else if(choice[2]=="日本維新の会"){
          return(1)
        }else if(choice[2]=="社会民主党"){
          return(1)
        }else if(choice[2]=="自由党"){
          return(1)
        }else if(choice[2]=="日本共産党"){
          return(1)
        }else if(choice[2]=="その他"){
          return(1)
        }else if(choice[2]=="どの政党も支持しない"){
          return(0)
        }else if(choice[2]=="わからない・答えたくない"){
          return(0)
        }else{
          # Intentional No return
        }
    }else if(choice[1]=="わからない・答えたくない"){
      return(0)
    }else{
      # Intentional No return
    }
  }


  # Converted in data_change_choices
  # if(type=="log_income"){
  #   if(choice > 10000){
  #     # too large
  #     return(-1)
  #   }else{
  #     return(log(choice + 1))  
  #   }
  # }


  # Converted in data_change_choices
  # if(type=="age"){
  #   return(2017 - choice)  
  # }


  stop(paste0("Check `type` or `choice` argument in `change_choices()`: ", type))

} # Change choices}}}



### Choices Finish}}}

